A mesh network is a network in which each node is connected directly to a plurality of other nodes. The connections between nodes can be wired or wireless. If a node in a mesh network is inoperable, all of the other nodes can still communicate with each other, either directly or through one or more intermediate nodes. Therefore, the node and path redundancy provided by mesh networks makes them highly reliable compared to other network designs.
There are numerous mesh network routing protocols that define the routing algorithms used to convey data between nodes. For example, Ad Hoc On-Demand Distance Vector (AODV), Temporary Ordered Routing Algorithm (TORA), and Dynamic Source Routing (DSR) are routing protocols designed for ad hoc wireless, fixed or mobile mesh networks. An ad hoc (“spontaneous”) network is a meshed network with wireless fixed and/or mobile connections.
The existing routing protocols/algorithms for ad hoc and other mesh networks are designed to support Quality of Service-(QoS)-sensitive applications. In these applications, QoS-related parameters (e.g., performance, throughput, capacity, loading, latency, jitter, availability, etc.) are specified for certain types of traffic. For example, streaming or real-time traffic requires high network throughput and capacity, Voice over IP (VOIP) traffic requires low latency and jitter, voice traffic requires low latency, and safety-critical traffic requires high availability. However, a significant problem with the existing routing algorithms/protocols is that each routing algorithm is designed optimally to support only one or two QoS-related parameters throughout a network, but all types of traffic are being routed through the networks involved. For example, AODV is designed to utilize bandwidth efficiently and minimize network load, TORA is designed to minimize communication overhead and conserve bandwidth, and DSR is designed to minimize overhead and maximize throughput. Network operators compensate for the design limitations of these routing algorithms, by generously over-provisioning network resources so that each type of traffic receives a required level of service. Consequently, because of the design limitations of existing routing algorithms, network operators are required to provide excess network resources that are substantially underutilized, and more importantly, bandwidth is inefficiently used.